package io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;

/**
 * 使用转换流测试字符流基础的读取字符操作
 */
public class ISRDemo {
    public static void main(String[] args) throws IOException {
        //将osw.txt文件中的所有字符读取回来
        FileInputStream fis = new FileInputStream("osw.txt");
        InputStreamReader isr = new InputStreamReader(fis, StandardCharsets.UTF_8);
        /*
            字符输入流Reader上定义了基础的读取字符方法:
            int read()
            读取一个字符，并以char形式返回，只不过返回的是一个int值，那么
            这个int值"低16位"有效
            类似:
            00000000 00000000 10011010 10110010
            |---自动补16个0--| |---读取到的字符--|

            如果返回的int值为整数-1也是用于表达流读取到了末尾
         */
//        int d = isr.read();
//        System.out.println((char)d);

        int d;
        while((d = isr.read())!=-1){
            System.out.print((char)d);
        }

        isr.close();


    }
}
